//
// AWS Manager - A free AWS console application demonstrating advanced concepts
// Copyright (C) 2008-2010 Sean O'Dell. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
/*
 * SessionBean1.java
 *
 * Created on Jul 8, 2008, 10:14:53 PM
 */
package awsmanager;

import com.awsmanager.common.AWSCredentialDataProvider;
import com.awsmanager.common.S3StorageObjectDataProvider;
import com.awsmanager.common.EC2InstanceDataProvider;
import com.awsmanager.common.EC2ImageDataProvider;
import com.awsmanager.common.S3StorageBucketDataProvider;
import com.awsmanager.common.EC2KeyPairDataProvider;
import com.awsmanager.common.EBSVolumeDataProvider;
import com.awsmanager.common.EBSSnapshotDataProvider;
import com.awsmanager.common.EC2AMILaunchPermissionDataProvider;
import com.awsmanager.common.EC2Connection;
import com.awsmanager.common.EC2IPDataProvider;
import com.awsmanager.common.EC2IpPermissionDataProvider;
import com.awsmanager.common.EC2RegionDataProvider;
import com.awsmanager.common.EC2SecurityGroupDataProvider;
import com.awsmanager.common.S3StorageConnection;
import com.awsmanager.common.S3StorageServerDataProvider;
import com.awsmanager.common.SDBConnection;
import com.awsmanager.common.SDBItemDataProvider;
import com.awsmanager.common.SDBServerDataProvider;
import com.sun.data.provider.RowKey;
import com.sun.rave.web.ui.appbase.AbstractSessionBean;
import com.sun.webui.jsf.component.PageAlert;
import com.sun.webui.jsf.component.TabSet;
import com.sun.webui.jsf.component.TableRowGroup;
import com.sun.webui.jsf.event.TableSelectPhaseListener;
import com.sun.webui.jsf.model.Option;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import javax.faces.FacesException;

/**
 * <p>Session scope data bean for your application.  Create properties
 *  here to represent cached data that should be made available across
 *  multiple HTTP requests for an individual user.</p>
 *
 * <p>An instance of this class will be created for you automatically,
 * the first time your application evaluates a value binding expression
 * or method binding expression that references a managed bean using
 * this class.</p>
 *
 * @author Sean ODell
 */
public class SessionBean1 extends AbstractSessionBean {
    // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">

    /**
     * <p>Automatically managed component initialization.  <strong>WARNING:</strong>
     * This method is automatically generated, so any user-specified code inserted
     * here is subject to being replaced.</p>
     */
    private void _init() throws Exception {
    }
    // </editor-fold>

    /**
     * <p>Construct a new session data bean instance.</p>
     */
    public SessionBean1() {
    }

    /**
     * <p>This method is called when this bean is initially added to
     * session scope.  Typically, this occurs as a result of evaluating
     * a value binding or method binding expression, which utilizes the
     * managed bean facility to instantiate this bean and store it into
     * session scope.</p>
     * 
     * <p>You may customize this method to initialize and cache data values
     * or resources that are required for the lifetime of a particular
     * user session.</p>
     */
    @Override
    public void init() {
        // Perform initializations inherited from our superclass
        super.init();
        // Perform application initialization that must complete
        // *before* managed components are initialized
        // TODO - add your own initialiation code here

        // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
        // Initialize automatically managed components
        // *Note* - this logic should NOT be modified
        try {
            _init();
        } catch (Exception e) {
            log("SessionBean1 Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
        }

        // </editor-fold>
        // Perform application initialization that must complete
        // *after* managed components are initialized
        // TODO - add your own initialization code here
    }

    /**
     * <p>This method is called when the session containing it is about to be
     * passivated.  Typically, this occurs in a distributed servlet container
     * when the session is about to be transferred to a different
     * container instance, after which the <code>activate()</code> method
     * will be called to indicate that the transfer is complete.</p>
     * 
     * <p>You may customize this method to release references to session data
     * or resources that can not be serialized with the session itself.</p>
     */
    @Override
    public void passivate() {
    }

    /**
     * <p>This method is called when the session containing it was
     * reactivated.</p>
     * 
     * <p>You may customize this method to reacquire references to session
     * data or resources that could not be serialized with the
     * session itself.</p>
     */
    @Override
    public void activate() {
    }

    /**
     * <p>This method is called when this bean is removed from
     * session scope.  Typically, this occurs as a result of
     * the session timing out or being terminated by the application.</p>
     * 
     * <p>You may customize this method to clean up resources allocated
     * during the execution of the <code>init()</code> method, or
     * at any later time during the lifetime of the application.</p>
     */
    @Override
    public void destroy() {
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected ApplicationBean1 getApplicationBean1() {
        return (ApplicationBean1) getBean("ApplicationBean1");
    }
    //-----------------------------------------------------------------------
    protected AWSCredentialDataProvider awsCredentialDataProvider = new AWSCredentialDataProvider();

    /**
     * Get the value of awsCredentialDataProvider
     *
     * @return the value of awsCredentialDataProvider
     */
    public AWSCredentialDataProvider getAwsCredentialDataProvider() {
        return awsCredentialDataProvider;
    }

    /**
     * Set the value of awsCredentialDataProvider
     *
     * @param awsCredentialDataProvider new value of awsCredentialDataProvider
     */
    public void setAwsCredentialDataProvider(AWSCredentialDataProvider awsCredentialDataProvider) {
        this.awsCredentialDataProvider = awsCredentialDataProvider;
    }
    //-----------------------------------------------------------------------
    protected EC2KeyPairDataProvider ec2KeyPairDataProvider = new EC2KeyPairDataProvider();

    /**
     * Get the value of ec2KeyPairDataProvider
     *
     * @return the value of ec2KeyPairDataProvider
     */
    public EC2KeyPairDataProvider getEc2KeyPairDataProvider() {
        return ec2KeyPairDataProvider;
    }

    /**
     * Set the value of ec2KeyPairDataProvider
     *
     * @param ec2KeyPairDataProvider new value of ec2KeyPairDataProvider
     */
    public void setEc2KeyPairDataProvider(EC2KeyPairDataProvider ec2KeyPairDataProvider) {
        this.ec2KeyPairDataProvider = ec2KeyPairDataProvider;
    }
    //-----------------------------------------------------------------------
    /**
     * EC2 Image Data Provider
     */
    public EC2ImageDataProvider ec2ImageDataProvider = new EC2ImageDataProvider();

    /**
     * Get the value of ec2ImageDataProvider
     *
     * @return the value of ec2ImageDataProvider
     */
    public EC2ImageDataProvider getEC2ImageDataProvider() {
        return ec2ImageDataProvider;
    }

    /**
     * Set the value of ec2ImageDataProvider
     *
     * @param ec2ImageDataProvider new value of ec2ImageDataProvider
     */
    public void setEC2ImageDataProvider(EC2ImageDataProvider ec2ImageDataProvider) {
        this.ec2ImageDataProvider = ec2ImageDataProvider;
    }
    /**
     * ---------------------------------------------------
     */
    /**
     * EC2 Instance Data Provider
     */
    public EC2InstanceDataProvider ec2InstanceDataProvider = new EC2InstanceDataProvider();

    /**
     * Get the value of ec2InstanceDataProvider
     *
     * @return the value of ec2InstanceDataProvider
     */
    public EC2InstanceDataProvider getEC2InstanceDataProvider() {
        return ec2InstanceDataProvider;
    }

    /**
     * Set the value of ec2InstanceDataProvider
     *
     * @param ec2InstanceDataProvider new value of ec2InstanceDataProvider
     */
    public void setEC2InstanceDataProvider(EC2InstanceDataProvider ec2InstanceDataProvider) {
        this.ec2InstanceDataProvider = ec2InstanceDataProvider;
    }
    /**
     * -----------------------------------------------------------------------
     * EBS Volume Data Provider
     */
    public EBSVolumeDataProvider ebsVolumeDataProvider = new EBSVolumeDataProvider();

    /**
     * Get the value of ebsVolumeDataProvider
     *
     * @return the value of ebsVolumeDataProvider
     */
    public EBSVolumeDataProvider getEBSVolumeDataProvider() {
        return ebsVolumeDataProvider;
    }

    /**
     * Set the value of ebsVolumeDataProvider
     *
     * @param ebsVolumeDataProvider new value of ebsVolumeDataProvider
     */
    public void setEBSVolumeDataProvider(EBSVolumeDataProvider ebsVolumeDataProvider) {
        this.ebsVolumeDataProvider = ebsVolumeDataProvider;
    }
    /**
     * -----------------------------------------------------------------------
     * EBS Volume Data Provider
     */
    public EBSSnapshotDataProvider ebsSnapshotDataProvider = new EBSSnapshotDataProvider();

    /**
     * Get the value of ebsSnapshotDataProvider
     *
     * @return the value of ebsSnapshotDataProvider
     */
    public EBSSnapshotDataProvider getEBSSnapshotDataProvider() {
        return ebsSnapshotDataProvider;
    }

    /**
     * Set the value of ebsSnapshotDataProvider
     *
     * @param ebsSnapshotDataProvider new value of ebsSnapshotDataProvider
     */
    public void setEBSSnapshotDataProvider(EBSSnapshotDataProvider ebsSnapshotDataProvider) {
        this.ebsSnapshotDataProvider = ebsSnapshotDataProvider;
    }
    //-------------------------------------------------------------------------
    public S3StorageBucketDataProvider s3StorageBucketDataProvider = new S3StorageBucketDataProvider();

    /**
     * Get the value of s3BucketDataProvider
     *
     * @return the value of s3BucketDataProvider
     */
    public S3StorageBucketDataProvider getS3StorageBucketDataProvider() {
        return s3StorageBucketDataProvider;
    }

    /**
     * Set the value of s3BucketDataProvider
     *
     * @param s3BucketDataProvider new value of s3BucketDataProvider
     */
    public void setS3StorageBucketDataProvider(S3StorageBucketDataProvider s3StorageBucketDataProvider) {
        this.s3StorageBucketDataProvider = s3StorageBucketDataProvider;
    }
    //-------------------------------------------------------------------------
    protected S3StorageObjectDataProvider s3StorageObjectDataProvider = new S3StorageObjectDataProvider();

    /**
     * Get the value of s3StorageObjectDataProvider
     *
     * @return the value of s3StorageObjectDataProvider
     */
    public S3StorageObjectDataProvider getS3StorageObjectDataProvider() {
        return s3StorageObjectDataProvider;
    }

    /**
     * Set the value of s3StorageObjectDataProvider
     *
     * @param s3StorageObjectDataProvider new value of s3StorageObjectDataProvider
     */
    public void setS3StorageObjectDataProvider(S3StorageObjectDataProvider s3StorageObjectDataProvider) {
        this.s3StorageObjectDataProvider = s3StorageObjectDataProvider;
    }
    //-------------------------------------------------------------------------
    protected EC2IPDataProvider ec2IPDataProvider = new EC2IPDataProvider();

    /**
     * Get the value of ec2IPDataProvider
     *
     * @return the value of ec2IPDataProvider
     */
    public EC2IPDataProvider getEc2IPDataProvider() {
        return ec2IPDataProvider;
    }

    /**
     * Set the value of ec2IPDataProvider
     *
     * @param ec2IPDataProvider new value of ec2IPDataProvider
     */
    public void setEc2IPDataProvider(EC2IPDataProvider ec2IPDataProvider) {
        this.ec2IPDataProvider = ec2IPDataProvider;
    }
    //-------------------------------------------------------------------------
    protected EC2SecurityGroupDataProvider ec2SecurityGroupDataProvider =
            new EC2SecurityGroupDataProvider();

    /**
     * Get the value of ec2SecurityGroupDataProvider
     *
     * @return the value of ec2SecurityGroupDataProvider
     */
    public EC2SecurityGroupDataProvider getEc2SecurityGroupDataProvider() {
        return ec2SecurityGroupDataProvider;
    }

    /**
     * Set the value of ec2SecurityGroupDataProvider
     *
     * @param ec2SecurityGroupDataProvider new value of ec2SecurityGroupDataProvider
     */
    public void setEc2SecurityGroupDataProvider(EC2SecurityGroupDataProvider ec2SecurityGroupDataProvider) {
        this.ec2SecurityGroupDataProvider = ec2SecurityGroupDataProvider;
    }
    //-------------------------------------------------------------------------
    protected S3StorageServerDataProvider s3StorageServerDataProvider =
            new S3StorageServerDataProvider();

    /**
     * Get the value of s3StorageServerDataProvider
     *
     * @return the value of s3StorageServerDataProvider
     */
    public S3StorageServerDataProvider getS3StorageServerDataProvider() {
        return s3StorageServerDataProvider;
    }

    /**
     * Set the value of s3StorageServerDataProvider
     *
     * @param s3StorageServerDataProvider new value of s3StorageServerDataProvider
     */
    public void setS3StorageServerDataProvider(S3StorageServerDataProvider s3StorageServerDataProvider) {
        this.s3StorageServerDataProvider = s3StorageServerDataProvider;
    }
    //-------------------------------------------------------------------------
    protected EC2RegionDataProvider ec2RegionDataProvider =
            new EC2RegionDataProvider();

    /**
     * Get the value of ec2RegionDataProvider
     *
     * @return the value of ec2RegionDataProvider
     */
    public EC2RegionDataProvider getEc2RegionDataProvider() {
        return ec2RegionDataProvider;
    }

    /**
     * Set the value of ec2RegionDataProvider
     *
     * @param ec2RegionDataProvider new value of ec2RegionDataProvider
     */
    public void setEc2RegionDataProvider(EC2RegionDataProvider ec2RegionDataProvider) {
        this.ec2RegionDataProvider = ec2RegionDataProvider;
    }

    //-------------------------------------------------------------------------
    protected SDBServerDataProvider sdbServerDataProvider = new SDBServerDataProvider();

    /**
     * Get the value of sdbServerDataProvider
     *
     * @return the value of sdbServerDataProvider
     */
    public SDBServerDataProvider getSdbServerDataProvider() {
        return sdbServerDataProvider;
    }

    /**
     * Set the value of sdbServerDataProvider
     *
     * @param sdbServerDataProvider new value of sdbServerDataProvider
     */
    public void setSdbServerDataProvider(SDBServerDataProvider sdbServerDataProvider) {
        this.sdbServerDataProvider = sdbServerDataProvider;
    }

    //-------------------------------------------------------------------------
    protected SDBItemDataProvider sdbItemDataProvider =
            new SDBItemDataProvider();

    /**
     * Get the value of sdbItemDataProvider
     *
     * @return the value of sdbItemDataProvider
     */
    public SDBItemDataProvider getSdbItemDataProvider() {
        return sdbItemDataProvider;
    }

    /**
     * Set the value of sdbItemDataProvider
     *
     * @param sdbItemDataProvider new value of sdbItemDataProvider
     */
    public void setSdbItemDataProvider(SDBItemDataProvider sdbItemDataProvider) {
        this.sdbItemDataProvider = sdbItemDataProvider;
    }
    //-------------------------------------------------------------------------
    protected PageAlert userPageAlert;

    /**
     * Get the value of userPageAlert
     *
     * @return the value of userPageAlert
     */
    public PageAlert getUserPageAlert() {
        return userPageAlert;
    }

    /**
     * Set the value of userPageAlert
     *
     * @param userPageAlert new value of userPageAlert
     */
    public void setUserPageAlert(PageAlert userPageAlert) {
        this.userPageAlert = userPageAlert;
    }
    /**
     * -----------------------------------------------------------------------
     */
    protected String userMessage;

    /**
     * Get the value of userMessage
     *
     * @return the value of userMessage
     */
    public String getUserMessage() {
        return userMessage;
    }

    /**
     * Set the value of userMessage
     *
     * @param userMessage new value of userMessage
     */
    public void setUserMessage(String userMessage) {
        this.userMessage = userMessage;
    }
    protected String userMessageDetail;

    /**
     * Get the value of userMessageDetail
     *
     * @return the value of userMessageDetail
     */
    public String getUserMessageDetail() {
        return userMessageDetail;
    }

    /**
     * Set the value of userMessageDetail
     *
     * @param userMessageDetail new value of userMessageDetail
     */
    public void setUserMessageDetail(String userMessageDetail) {
        this.userMessageDetail = userMessageDetail;
    }
    /**
     * -----------------------------------------------------------------------
     */
    protected boolean userVisibleContinueBtn;

    /**
     * Get the value of userVisibleContinueBtn
     *
     * @return the value of userVisibleContinueBtn
     */
    public boolean isUserVisibleContinueBtn() {
        return userVisibleContinueBtn;
    }

    /**
     * Set the value of userVisibleContinueBtn
     *
     * @param userVisibleContinueBtn new value of userVisibleContinueBtn
     */
    public void setUserVisibleContinueBtn(boolean userVisible) {
        this.userVisibleContinueBtn = userVisible;
    }
    //-------------------------------------------------------------------------
    protected boolean userVisibleConnectBtn;

    public boolean isUserVisibleConnectBtn() {
        return userVisibleConnectBtn;
    }

    public void setUserVisibleConnectBtn(boolean userVisibleConnectBtn) {
        this.userVisibleConnectBtn = userVisibleConnectBtn;
    }
    //-------------------------------------------------------------------------
    protected boolean userVisibleReturnToMainBtn = true;

    /**
     * Get the value of userVisibleReturnToMainBtn
     *
     * @return the value of userVisibleReturnToMainBtn
     */
    public boolean getUserVisibleReturnToMainBtn() {
        return userVisibleReturnToMainBtn;
    }

    /**
     * Set the value of userVisibleReturnToMainBtn
     *
     * @param userVisibleReturnToMainBtn new value of userVisibleReturnToMainBtn
     */
    public void setUserVisibleReturnToMainBtn(boolean userVisibleReturnToMainBtn) {
        this.userVisibleReturnToMainBtn = userVisibleReturnToMainBtn;
    }
    //-------------------------------------------------------------------------
    protected boolean userVisibleReturnToSGManageBtn = false;

    /**
     * Get the value of userVisibleReturnToSGManageBtn
     *
     * @return the value of userVisibleReturnToSGManageBtn
     */
    public boolean isUserVisibleReturnToSGManageBtn() {
        return userVisibleReturnToSGManageBtn;
    }

    /**
     * Set the value of userVisibleReturnToSGManageBtn
     *
     * @param userVisibleReturnToSGManageBtn new value of userVisibleReturnToSGManageBtn
     */
    public void setUserVisibleReturnToSGManageBtn(boolean userVisibleReturnToSGManageBtn) {
        this.userVisibleReturnToSGManageBtn = userVisibleReturnToSGManageBtn;
    }
    //-------------------------------------------------------------------------
    protected boolean userVisibleReturnToAMILPManageBtn = false;

    /**
     * Get the value of userVisibleReturnToAMILPManageBtn
     *
     * @return the value of userVisibleReturnToAMILPManageBtn
     */
    public boolean isUserVisibleReturnToAMILPManageBtn() {
        return userVisibleReturnToAMILPManageBtn;
    }

    /**
     * Set the value of userVisibleReturnToAMILPManageBtn
     *
     * @param userVisibleReturnToAMILPManageBtn new value of userVisibleReturnToAMILPManageBtn
     */
    public void setUserVisibleReturnToAMILPManageBtn(boolean userVisibleReturnToAMILPManageBtn) {
        this.userVisibleReturnToAMILPManageBtn = userVisibleReturnToAMILPManageBtn;
    }
    //-------------------------------------------------------------------------
    protected boolean userVisibleCloneMetadataFromSnap = false;
    protected boolean userVisibleCloneMetadataFromVol = false;

    public boolean isUserVisibleCloneMetadataFromSnap() {
        return userVisibleCloneMetadataFromSnap;
    }

    public void setUserVisibleCloneMetadataFromSnap(boolean userVisibleCloneMetadataFromSnap) {
        this.userVisibleCloneMetadataFromSnap = userVisibleCloneMetadataFromSnap;
    }

    public boolean isUserVisibleCloneMetadataFromVol() {
        return userVisibleCloneMetadataFromVol;
    }

    public void setUserVisibleCloneMetadataFromVol(boolean userVisibleCloneMetadataFromVol) {
        this.userVisibleCloneMetadataFromVol = userVisibleCloneMetadataFromVol;
    }
    //-------------------------------------------------------------------------
    private TableSelectPhaseListener tablePhaseListener = new TableSelectPhaseListener();

    public void setSelected(Object object) {
        RowKey rowKey = (RowKey) getValue("#{currentRow.tableRow}");
        if (rowKey != null) {
            tablePhaseListener.setSelected(rowKey, object);
        }
    }

    public Object getSelected() {
        RowKey rowKey = (RowKey) getValue("#{currentRow.tableRow}");
        return tablePhaseListener.getSelected(rowKey);

    }

    public Object getSelectedValue() {
        RowKey rowKey = (RowKey) getValue("#{currentRow.tableRow}");
        return (rowKey != null) ? rowKey.getRowId() : null;

    }

    public boolean getSelectedState() {
        RowKey rowKey = (RowKey) getValue("#{currentRow.tableRow}");
        return tablePhaseListener.isSelected(rowKey);
    }

    public void clearSelected() {
        tablePhaseListener.clear();
    }
    /**
     * -----------------------------------------------------------------------
     */
    protected TableRowGroup currentTableRowGroup;

    /**
     * Get the value of currentTableRowGroup
     *
     * @return the value of currentTableRowGroup
     */
    public TableRowGroup getCurrentTableRowGroup() {
        return currentTableRowGroup;
    }

    /**
     * Set the value of currentTableRowGroup
     *
     * @param currentTableRowGroup new value of currentTableRowGroup
     */
    public void setCurrentTableRowGroup(TableRowGroup currentTableRowGroup) {
        this.currentTableRowGroup = currentTableRowGroup;
    }
    /**
     * -----------------------------------------------------------------------
     */
    protected RowKey[] selectedRowKeys;

    /**
     * Get the value of selectedRowKeys
     *
     * @return the value of selectedRowKeys
     */
    public RowKey[] getSelectedRowKeys() {
        return selectedRowKeys;
    }

    /**
     * Set the value of selectedRowKeys
     *
     * @param selectedRowKeys new value of selectedRowKeys
     */
    public void setSelectedRowKeys(RowKey[] selectedRowKeys) {
        this.selectedRowKeys = selectedRowKeys;
    }
    /**
     * -----------------------------------------------------------------------
     */
    protected TabSet currentTabSet = null;

    /**
     * Get the value of currentTabSet
     *
     * @return the value of currentTabSet
     */
    public TabSet getCurrentTabSet() {
        return currentTabSet;
    }

    /**
     * Set the value of currentTabSet
     *
     * @param currentTabSet new value of currentTabSet
     */
    public void setCurrentTabSet(TabSet currentTabSet) {
        this.currentTabSet = currentTabSet;
    }
    /**
     * -----------------------------------------------------------------------
     */
    protected Map createVolInfo;

    /**
     * Get the value of createVolInfo
     *
     * @return the value of createVolInfo
     */
    public Map getCreateVolInfo() {
        return createVolInfo;
    }

    /**
     * Set the value of createVolInfo
     *
     * @param createVolInfo new value of createVolInfo
     */
    public void setCreateVolInfo(Map createVolInfo) {
        this.createVolInfo = createVolInfo;
    }
    /**
     * -----------------------------------------------------------------------
     */
    protected Map attachVolInfo;

    /**
     * Get the value of attachVolInfo
     *
     * @return the value of attachVolInfo
     */
    public Map getAttachVolInfo() {
        return attachVolInfo;
    }

    /**
     * Set the value of attachVolInfo
     *
     * @param attachVolInfo new value of attachVolInfo
     */
    public void setAttachVolInfo(Map attachVolInfo) {
        this.attachVolInfo = attachVolInfo;
    }
    //-----------------------------------------------------------------------
    protected Map detachVolInfo;

    /**
     * Get the value of detachVolInfo
     *
     * @return the value of detachVolInfo
     */
    public Map getDetachVolInfo() {
        return detachVolInfo;
    }

    /**
     * Set the value of detachVolInfo
     *
     * @param detachVolInfo new value of detachVolInfo
     */
    public void setDetachVolInfo(Map detachVolInfo) {
        this.detachVolInfo = detachVolInfo;
    }
    //-----------------------------------------------------------------------
    protected Map launchInstInfo;

    /**
     * Get the value of launchInstInfo
     *
     * @return the value of launchInstInfo
     */
    public Map getLaunchInstInfo() {
        return launchInstInfo;
    }

    /**
     * Set the value of launchInstInfo
     *
     * @param launchInstInfo new value of launchInstInfo
     */
    public void setLaunchInstInfo(Map launchInstInfo) {
        this.launchInstInfo = launchInstInfo;
    }
    //-----------------------------------------------------------------------
    protected Map sshInfo;

    /**
     * Get the value of sshInfo
     *
     * @return the value of sshInfo
     */
    public Map getSshInfo() {
        return sshInfo;
    }

    /**
     * Set the value of sshInfo
     *
     * @param sshInfo new value of sshInfo
     */
    public void setSshInfo(Map sshInfo) {
        this.sshInfo = sshInfo;
    }
    //-----------------------------------------------------------------------
    protected Map bucketUploadInfo;

    /**
     * Get the value of bucketUploadInfo
     *
     * @return the value of bucketUploadInfo
     */
    public Map getBucketUploadInfo() {
        return bucketUploadInfo;
    }

    /**
     * Set the value of bucketUploadInfo
     *
     * @param bucketUploadInfo new value of bucketUploadInfo
     */
    public void setBucketUploadInfo(Map bucketInfo) {
        this.bucketUploadInfo = bucketInfo;
    }
    //-----------------------------------------------------------------------
    protected Map createVolsFromSnapsInfo;

    /**
     * Get the value of createVolsFromSnapsInfo
     *
     * @return the value of createVolsFromSnapsInfo
     */
    public Map getCreateVolsFromSnapsInfo() {
        return createVolsFromSnapsInfo;
    }

    /**
     * Set the value of createVolsFromSnapsInfo
     *
     * @param createVolsFromSnapsInfo new value of createVolsFromSnapsInfo
     */
    public void setCreateVolsFromSnapsInfo(Map createVolsFromSnapsInfo) {
        this.createVolsFromSnapsInfo = createVolsFromSnapsInfo;
    }
    //-----------------------------------------------------------------------
    protected Map ec2AMILaunchPermissionsInfo;

    /**
     * Get the value of ec2AMILaunchPermissionsInfo
     *
     * @return the value of ec2AMILaunchPermissionsInfo
     */
    public Map getEc2AMILaunchPermissionsInfo() {
        return ec2AMILaunchPermissionsInfo;
    }

    /**
     * Set the value of ec2AMILaunchPermissionsInfo
     *
     * @param ec2AMILaunchPermissionsInfo new value of ec2AMILaunchPermissionsInfo
     */
    public void setEc2AMILaunchPermissionsInfo(Map ec2AMILaunchPermissionsInfo) {
        this.ec2AMILaunchPermissionsInfo = ec2AMILaunchPermissionsInfo;
    }
    //-----------------------------------------------------------------------
    protected Map ec2SecurityGroupsInfo;

    /**
     * Get the value of ec2SecurityGroupsInfo
     *
     * @return the value of ec2SecurityGroupsInfo
     */
    public Map getEc2SecurityGroupsInfo() {
        return ec2SecurityGroupsInfo;
    }

    /**
     * Set the value of ec2SecurityGroupsInfo
     *
     * @param ec2SecurityGroupsInfo new value of ec2SecurityGroupsInfo
     */
    public void setEc2SecurityGroupsInfo(Map ec2SecurityGroupsInfo) {
        this.ec2SecurityGroupsInfo = ec2SecurityGroupsInfo;
    }
    //-----------------------------------------------------------------------    
    protected Map s3ManageObjectsInfo;

    /**
     * Get the value of s3ManageObjectsInfo
     *
     * @return the value of s3ManageObjectsInfo
     */
    public Map getS3ManageObjectsInfo() {
        return s3ManageObjectsInfo;
    }

    /**
     * Set the value of s3ManageObjectsInfo
     *
     * @param s3ManageObjectsInfo new value of s3ManageObjectsInfo
     */
    public void setS3ManageObjectsInfo(Map s3ManageObjectsInfo) {
        this.s3ManageObjectsInfo = s3ManageObjectsInfo;
    }
    /**
     * -----------------------------------------------------------------------
     */
    protected String pageAlertDetailMessage;

    /**
     * Get the value of pageAlertDetailMessage
     *
     * @return the value of pageAlertDetailMessage
     */
    public String getPageAlertDetailMessage() {
        return pageAlertDetailMessage;
    }

    /**
     * Set the value of pageAlertDetailMessage
     *
     * @param pageAlertDetailMessage new value of pageAlertDetailMessage
     */
    public void setPageAlertDetailMessage(String stringBuffer) {
        this.pageAlertDetailMessage = stringBuffer;
    }
    /**
     * -----------------------------------------------------------------------
     */
    protected String pageAlertAWSActionType;

    /**
     * Get the value of pageAlertAWSActionType
     *
     * @return the value of pageAlertAWSActionType
     */
    public String getPageAlertAWSActionType() {
        return pageAlertAWSActionType;
    }

    /**
     * Set the value of pageAlertAWSActionType
     *
     * @param pageAlertAWSActionType new value of pageAlertAWSActionType
     */
    public void setPageAlertAWSActionType(String pageAlertAWSActionType) {
        this.pageAlertAWSActionType = pageAlertAWSActionType;
    }
    //-----------------------------------------------------------------------
    protected HashMap awsSystemProps;

    /**
     * Get the value of awsSystemProps
     *
     * @return the value of awsSystemProps
     */
    public HashMap getAwsSystemProps() {
        return awsSystemProps;
    }

    /**
     * Set the value of awsSystemProps
     *
     * @param awsSystemProps new value of awsSystemProps
     */
    public void setAwsSystemProps(HashMap awsSystemProps) {
        this.awsSystemProps = awsSystemProps;
    }
    //-----------------------------------------------------------------------
    protected Properties AWSProps;

    /**
     * Get the value of AWSProps
     *
     * @return the value of AWSProps
     */
    public Properties getAWSProps() {
        return AWSProps;
    }

    /**
     * Set the value of AWSProps
     *
     * @param AWSProps new value of AWSProps
     */
    public void setAWSProps(Properties AWSProps) {
        this.AWSProps = AWSProps;
    }
    public String AWSAccountID = new String(getAWSAccountID());

    public String getAWSAccountID() {
        if (this.AWSProps != null) {
            if (!this.AWSProps.getProperty("aws.accountNickName").equals("")) {
                return (String) this.AWSProps.getProperty("aws.accountNickName");
            } else if (!this.AWSProps.getProperty("aws.accountId").equals("")) {
                return (String) this.AWSProps.getProperty("aws.accountId");
            }
        }
        return "";

    }
    //-----------------------------------------------------------------------    
    protected Option[] instanceIDsOptions;

    /**
     * Get the value of instanceIDsOptions
     *
     * @return the value of instanceIDsOptions
     */
    public Option[] getInstanceIDsOptions() {
        return instanceIDsOptions;
    }

    /**
     * Set the value of instanceIDsOptions
     *
     * @param instanceIDsOptions new value of instanceIDsOptions
     */
    public void setInstanceIDsOptions(Option[] instanceIDsOptions) {
        this.instanceIDsOptions = instanceIDsOptions;
    }
    //-----------------------------------------------------------------------
    protected Option[] imageIDRowsSelected;

    /**
     * Get the value of imageIDRowsSelected
     *
     * @return the value of imageIDRowsSelected
     */
    public Option[] getImageIDRowsSelected() {
        return imageIDRowsSelected;
    }

    /**
     * Set the value of imageIDRowsSelected
     *
     * @param imageIDRowsSelected new value of imageIDRowsSelected
     */
    public void setImageIDRowsSelected(Option[] imageIDRowsSelected) {
        this.imageIDRowsSelected = imageIDRowsSelected;
    }
    //-----------------------------------------------------------------------
    protected Option[] ec2ARIOptions;

    /**
     * Get the value of ec2ARIOptions
     *
     * @return the value of ec2ARIOptions
     */
    public Option[] getEc2ARIOptions() {
        return ec2ARIOptions;
    }

    /**
     * Set the value of ec2ARIOptions
     *
     * @param ec2ARIOptions new value of ec2ARIOptions
     */
    public void setEc2ARIOptions(Option[] ec2ARIOptions) {
        this.ec2ARIOptions = ec2ARIOptions;
    }
    //-----------------------------------------------------------------------
    protected Option[] ec2AKIOptions;

    /**
     * Get the value of ec2AKIOptions
     *
     * @return the value of ec2AKIOptions
     */
    public Option[] getEc2AKIOptions() {
        return ec2AKIOptions;
    }

    /**
     * Set the value of ec2AKIOptions
     *
     * @param ec2AKIOptions new value of ec2AKIOptions
     */
    public void setEc2AKIOptions(Option[] ec2AKIOptions) {
        this.ec2AKIOptions = ec2AKIOptions;
    }
    //-----------------------------------------------------------------------

    protected Option[] instanceIDRowsSelected;

    /**
     * Get the value of instanceIDRowsSelected
     *
     * @return the value of instanceIDRowsSelected
     */
    public Option[] getInstanceIDRowsSelected() {
        return instanceIDRowsSelected;
    }

    /**
     * Set the value of instanceIDRowsSelected
     *
     * @param instanceIDRowsSelected new value of instanceIDRowsSelected
     */
    public void setInstanceIDRowsSelected(Option[] instanceIDRowsSelected) {
        this.instanceIDRowsSelected = instanceIDRowsSelected;
    }
    //-----------------------------------------------------------------------
    protected Option[] awsNickNamesOptions;

    /**
     * Get the value of awsNickNamesOptions
     *
     * @return the value of awsNickNamesOptions
     */
    public Option[] getAwsNickNamesOptions() {
        return awsNickNamesOptions;
    }

    /**
     * Set the value of awsNickNamesOptions
     *
     * @param awsNickNamesOptions new value of awsNickNamesOptions
     */
    public void setAwsNickNamesOptions(Option[] awsNickNamesOptions) {
        this.awsNickNamesOptions = awsNickNamesOptions;
    }
    //-----------------------------------------------------------------------
    protected Option[] imageIDsOptions;

    /**
     * Get the value of imageIDsOptions
     *
     * @return the value of imageIDsOptions
     */
    public Option[] getImageIDsOptions() {
        return imageIDsOptions;
    }

    /**
     * Set the value of imageIDsOptions
     *
     * @param imageIDsOptions new value of imageIDsOptions
     */
    public void setImageIDsOptions(Option[] imageIDsOptions) {
        this.imageIDsOptions = imageIDsOptions;
    }
    //-----------------------------------------------------------------------
    protected Option[] securityGroupsOptions;

    /**
     * Get the value of securityGroupsOptions
     *
     * @return the value of securityGroupsOptions
     */
    public Option[] getSecurityGroupsOptions() {
        return securityGroupsOptions;
    }

    /**
     * Set the value of securityGroupsOptions
     *
     * @param securityGroupsOptions new value of securityGroupsOptions
     */
    public void setSecurityGroupsOptions(Option[] securityGroupsAvailableOptions) {
        this.securityGroupsOptions = securityGroupsAvailableOptions;
    }
    //-----------------------------------------------------------------------
    protected Option[] securityGroupsRegionOptions;

    /**
     * Get the value of securityGroupsRegionOptions
     *
     * @return the value of securityGroupsRegionOptions
     */
    public Option[] getSecurityGroupsRegionOptions() {
        return securityGroupsRegionOptions;
    }

    /**
     * Set the value of securityGroupsRegionOptions
     *
     * @param securityGroupsRegionOptions new value of securityGroupsRegionOptions
     */
    public void setSecurityGroupsRegionOptions(Option[] securityGroupsRegionOptions) {
        this.securityGroupsRegionOptions = securityGroupsRegionOptions;
    }
    //-----------------------------------------------------------------------
    protected String awsNickNameDefault;

    /**
     * Get the value of awsNickNameDefault
     *
     * @return the value of awsNickNameDefault
     */
    public String getAwsNickNameDefault() {
        return awsNickNameDefault;
    }

    /**
     * Set the value of awsNickNameDefault
     *
     * @param awsNickNameDefault new value of awsNickNameDefault
     */
    public void setAwsNickNameDefault(String awsNickNameDefault) {
        this.awsNickNameDefault = awsNickNameDefault;
    }
    //-----------------------------------------------------------------------
    protected String ec2LaunchZoneDefault;

    /**
     * Get the value of ec2LaunchZoneDefault
     *
     * @return the value of ec2LaunchZoneDefault
     */
    public String getEc2LaunchZoneDefault() {
        return ec2LaunchZoneDefault;
    }

    /**
     * Set the value of ec2LaunchZoneDefault
     *
     * @param ec2LaunchZoneDefault new value of ec2LaunchZoneDefault
     */
    public void setEc2LaunchZoneDefault(String ec2LaunchZoneDefault) {
        this.ec2LaunchZoneDefault = ec2LaunchZoneDefault;
    }
    //-----------------------------------------------------------------------
    protected Option[] ec2AvailabilityZoneOptions;

    /**
     * Get the value of ec2AvailabilityZoneOptions
     *
     * @return the value of ec2AvailabilityZoneOptions
     */
    public Option[] getEc2AvailabilityZoneOptions() {
        return ec2AvailabilityZoneOptions;
    }

    /**
     * Set the value of ec2AvailabilityZoneOptions
     *
     * @param ec2AvailabilityZoneOptions new value of ec2AvailabilityZoneOptions
     */
    public void setEc2AvailabilityZoneOptions(Option[] ec2AvailabilityZoneOptions) {
        this.ec2AvailabilityZoneOptions = ec2AvailabilityZoneOptions;
    }
    //-----------------------------------------------------------------------
    protected Option[] ec2AvailabilityZoneOptionsFilter;

    /**
     * Get the value of ec2AvailabilityZoneOptionsFilter
     *
     * @return the value of ec2AvailabilityZoneOptionsFilter
     */
    public Option[] getEc2AvailabilityZoneOptionsFilter() {
        return ec2AvailabilityZoneOptionsFilter;
    }

    /**
     * Set the value of ec2AvailabilityZoneOptionsFilter
     *
     * @param ec2AvailabilityZoneOptionsFilter new value of ec2AvailabilityZoneOptionsFilter
     */
    public void setEc2AvailabilityZoneOptionsFilter(Option[] ec2AvailabilityZoneOptionsFilter) {
        this.ec2AvailabilityZoneOptionsFilter = ec2AvailabilityZoneOptionsFilter;
    }
    //-----------------------------------------------------------------------
    protected Option[] s3ServerOptions;

    /**
     * Get the value of es3ServerOptions
     *
     * @return the value of es3ServerOptions
     */
    public Option[] getS3ServerOptions() {
        return s3ServerOptions;
    }

    /**
     * Set the value of es3ServerOptions
     *
     * @param es3ServerOptions new value of es3ServerOptions
     */
    public void setS3ServerOptions(Option[] es3ServerOptions) {
        this.s3ServerOptions = es3ServerOptions;
    }

    //-----------------------------------------------------------------------

    protected Option[] SDBServerOptions;

    /**
     * Get the value of SDBServerOptions
     *
     * @return the value of SDBServerOptions
     */
    public Option[] getSDBServerOptions() {
        return SDBServerOptions;
    }

    /**
     * Set the value of SDBServerOptions
     *
     * @param SDBServerOptions new value of SDBServerOptions
     */
    public void setSDBServerOptions(Option[] SDBServerOptions) {
        this.SDBServerOptions = SDBServerOptions;
    }

    //-----------------------------------------------------------------------
    protected Option[] ec2ServerOptions;

    /**
     * Get the value of ec2ServerOptions
     *
     * @return the value of ec2ServerOptions
     */
    public Option[] getEc2ServerOptions() {
        return ec2ServerOptions;
    }

    /**
     * Set the value of ec2ServerOptions
     *
     * @param ec2ServerOptions new value of ec2ServerOptions
     */
    public void setEc2ServerOptions(Option[] ec2ServerOptions) {
        this.ec2ServerOptions = ec2ServerOptions;
    }
    //-----------------------------------------------------------------------
    protected Option[] ec2RegionServerOptions;

    /**
     * Get the value of ec2RegionServerOptions
     *
     * @return the value of ec2RegionServerOptions
     */
    public Option[] getEc2RegionServerOptions() {
        return ec2RegionServerOptions;
    }

    /**
     * Set the value of ec2RegionServerOptions
     *
     * @param ec2RegionServerOptions new value of ec2RegionServerOptions
     */
    public void setEc2RegionServerOptions(Option[] ec2RegionServerOptions) {
        this.ec2RegionServerOptions = ec2RegionServerOptions;
    }
    //-----------------------------------------------------------------------
    protected Option[] ec2RegionOptions;

    /**
     * Get the value of ec2RegionOptions
     *
     * @return the value of ec2RegionOptions
     */
    public Option[] getEc2RegionOptions() {
        return ec2RegionOptions;
    }

    /**
     * Set the value of ec2RegionOptions
     *
     * @param ec2RegionOptions new value of ec2RegionOptions
     */
    public void setEc2RegionOptions(Option[] ec2RegionOptions) {
        this.ec2RegionOptions = ec2RegionOptions;
    }
    //-----------------------------------------------------------------------
    protected Option[] ec2RegionOptionsFilter;

    /**
     * Get the value of ec2RegionOptionsFilter
     *
     * @return the value of ec2RegionOptionsFilter
     */
    public Option[] getEc2RegionOptionsFilter() {
        return ec2RegionOptionsFilter;
    }

    /**
     * Set the value of ec2RegionOptionsFilter
     *
     * @param ec2RegionOptionsFilter new value of ec2RegionOptionsFilter
     */
    public void setEc2RegionOptionsFilter(Option[] ec2RegionOptionsFilter) {
        this.ec2RegionOptionsFilter = ec2RegionOptionsFilter;
    }
    //-----------------------------------------------------------------------
    protected EC2IpPermissionDataProvider ec2IpPermissionDataProvider =
            new EC2IpPermissionDataProvider();

    /**
     * Get the value of ec2IpPermissionDataProvider
     *
     * @return the value of ec2IpPermissionDataProvider
     */
    public EC2IpPermissionDataProvider getEc2IpPermissionDataProvider() {
        return ec2IpPermissionDataProvider;
    }

    /**
     * Set the value of ec2IpPermissionDataProvider
     *
     * @param ec2IpPermissionDataProvider new value of ec2IpPermissionDataProvider
     */
    public void setEc2IpPermissionDataProvider(EC2IpPermissionDataProvider ec2IpPermissionDataProvider) {
        this.ec2IpPermissionDataProvider = ec2IpPermissionDataProvider;
    }
    //-----------------------------------------------------------------------
    protected EC2AMILaunchPermissionDataProvider ec2AMILaunchPermissionDataProvider =
            new EC2AMILaunchPermissionDataProvider();

    /**
     * Get the value of ec2AMILaunchPermissionDataProvider
     *
     * @return the value of ec2AMILaunchPermissionDataProvider
     */
    public EC2AMILaunchPermissionDataProvider getEc2AMILaunchPermissionDataProvider() {
        return ec2AMILaunchPermissionDataProvider;
    }

    /**
     * Set the value of ec2AMILaunchPermissionDataProvider
     *
     * @param ec2AMILaunchPermissionDataProvider new value of ec2AMILaunchPermissionDataProvider
     */
    public void setEc2AMILaunchPermissionDataProvider(EC2AMILaunchPermissionDataProvider ec2AMILaunchPermissionDataProvider) {
        this.ec2AMILaunchPermissionDataProvider = ec2AMILaunchPermissionDataProvider;
    }
    //-----------------------------------------------------------------------
    protected Option[] keyPairNamesOptions;

    /**
     * Get the value of keyPairNamesOptions
     *
     * @return the value of keyPairNamesOptions
     */
    public Option[] getKeyPairNamesOptions() {
        return keyPairNamesOptions;
    }

    /**
     * Set the value of keyPairNamesOptions
     *
     * @param keyPairNamesOptions new value of keyPairNamesOptions
     */
    public void setKeyPairNamesOptions(Option[] keyPairNamesOptions) {
        this.keyPairNamesOptions = keyPairNamesOptions;
    }
    //-----------------------------------------------------------------------
    protected Option[] keyPairNamesRegionOptions;

    /**
     * Get the value of keyPairNamesRegionOptions
     *
     * @return the value of keyPairNamesRegionOptions
     */
    public Option[] getKeyPairNamesRegionOptions() {
        return keyPairNamesRegionOptions;
    }

    /**
     * Set the value of keyPairNamesRegionOptions
     *
     * @param keyPairNamesRegionOptions new value of keyPairNamesRegionOptions
     */
    public void setKeyPairNamesRegionOptions(Option[] keyPairNamesRegionOptions) {
        this.keyPairNamesRegionOptions = keyPairNamesRegionOptions;
    }
    //-----------------------------------------------------------------------
    protected Map currentTableStates = new HashMap();

    /**
     * Get the value of currentTableStates
     *
     * @return the value of currentTableStates
     */
    public Map getCurrentTableStates() {
        return currentTableStates;
    }

    /**
     * Set the value of currentTableStates
     *
     * @param currentTableStates new value of currentTableStates
     */
    public void setCurrentTableStates(Map currentTableStates) {
        this.currentTableStates = currentTableStates;
    }
    //-----------------------------------------------------------------------
    protected Boolean visAWSNickNamesDDL;

    /**
     * Get the value of visAWSNickNamesDDL
     *
     * @return the value of visAWSNickNamesDDL
     */
    public Boolean getVisAWSNickNamesDDL() {
        return visAWSNickNamesDDL;
    }

    /**
     * Set the value of visAWSNickNamesDDL
     *
     * @param visAWSNickNamesDDL new value of visAWSNickNamesDDL
     */
    public void setVisAWSNickNamesDDL(Boolean visAWSNickNamesDDL) {
        this.visAWSNickNamesDDL = visAWSNickNamesDDL;
    }
    //-----------------------------------------------------------------------
    protected Boolean visMetadataButton = true;

    /**
     * Get the value of visMetadataButton
     *
     * @return the value of visMetadataButton
     */
    public Boolean getVisMetadataButton() {
        return visMetadataButton;
    }

    /**
     * Set the value of visMetadataButton
     *
     * @param visMetadataButton new value of visMetadataButton
     */
    public void setVisMetadataButton(Boolean visMetadataButton) {
        this.visMetadataButton = visMetadataButton;
    }
    //-----------------------------------------------------------------------
    protected EC2Connection ec2Connection;

    /**
     * Get the value of ec2Connection
     *
     * @return the value of ec2Connection
     */
    public EC2Connection getEc2Connection() {
        return ec2Connection;
    }

    /**
     * Set the value of ec2Connection
     *
     * @param ec2Connection new value of ec2Connection
     */
    public void setEc2Connection(EC2Connection ec2Connection) {
        this.ec2Connection = ec2Connection;
    }
    protected S3StorageConnection s3StorageConnection;

    /**
     * Get the value of s3Connection
     *
     * @return the value of s3Connection
     */
    public S3StorageConnection getS3StorageConnection() {
        return s3StorageConnection;
    }

    /**
     * Set the value of s3Connection
     *
     * @param s3Connection new value of s3Connection
     */
    public void setS3StorageConnection(S3StorageConnection s3StorageConnection) {
        this.s3StorageConnection = s3StorageConnection;
    }


    //-----------------------------------------------------------------------
    protected SDBConnection sdbConnection;

    /**
     * Get the value of sdbConnection
     *
     * @return the value of sdbConnection
     */
    public SDBConnection getSdbConnection() {
        return sdbConnection;
    }

    /**
     * Set the value of sdbConnection
     *
     * @param sdbConnection new value of sdbConnection
     */
    public void setSdbConnection(SDBConnection sdbConnection) {
        this.sdbConnection = sdbConnection;
    }
    //-----------------------------------------------------------------------
    protected Map dataproviders;

    /**
     * Get the value of dataproviders
     *
     * @return the value of dataproviders
     */
    public Map getDataproviders() {
        dataproviders = new HashMap();
        dataproviders.put("elasticip", this.getEc2IPDataProvider());
        dataproviders.put("instance", this.getEC2InstanceDataProvider());
        dataproviders.put("snapshot", this.getEBSSnapshotDataProvider());
        dataproviders.put("volume", this.getEBSVolumeDataProvider());
        return dataproviders;
    }

    /**
     * Set the value of dataproviders
     *
     * @param dataproviders new value of dataproviders
     */
    public void setDataproviders(Map dataproviders) {
        this.dataproviders = dataproviders;
    }
    //-----------------------------------------------------------------------
    // Image table column visibility
    //-----------------------------------------------------------------------
    protected boolean visImagelocation = true;
    protected boolean visImageownerid = true;
    protected boolean visImagestate = true;
    protected boolean visImageavailability = true;
    protected boolean visImageselect = true;

    public boolean isVisImageavailability() {
        return visImageavailability;
    }

    public void setVisImageavailability(boolean visImageavailability) {
        this.visImageavailability = visImageavailability;
    }

    public boolean isVisImagelocation() {
        return visImagelocation;
    }

    public void setVisImagelocation(boolean visImagelocation) {
        this.visImagelocation = visImagelocation;
    }

    public boolean isVisImageownerid() {
        return visImageownerid;
    }

    public void setVisImageownerid(boolean visImageownerid) {
        this.visImageownerid = visImageownerid;
    }

    public boolean isVisImagestate() {
        return visImagestate;
    }

    public void setVisImagestate(boolean visImagestate) {
        this.visImagestate = visImagestate;
    }

    public boolean isVisImageselect() {
        return visImageselect;
    }

    public void setVisImageselect(boolean visImageselect) {
        this.visImageselect = visImageselect;
    }
    //-----------------------------------------------------------------------
    // Instance table column visibility
    //-----------------------------------------------------------------------
    protected boolean visinstInstid = true;
    protected boolean visinstInstname = true;
    protected boolean visinstInstdesc = false;
    protected boolean visinstInstownerlast = false;
    protected boolean visinstInstownerfirst = false;
    protected boolean visinstInstownerdept = false;
    protected boolean visinstImageid = true;
    protected boolean visinstType = true;
    protected boolean visinstZone = true;
    protected boolean visinstState = true;
    protected boolean visinstPublicIP = true;
    protected boolean visinstPrivateIP = false;
    protected boolean visinstLaunchTime = true;
    protected boolean visinstRunningHousrs = true;

    public boolean isVisinstImageid() {
        return visinstImageid;
    }

    public void setVisinstImageid(boolean visinstImageid) {
        this.visinstImageid = visinstImageid;
    }

    public boolean isVisinstInstdesc() {
        return visinstInstdesc;
    }

    public void setVisinstInstdesc(boolean visinstInstdesc) {
        this.visinstInstdesc = visinstInstdesc;
    }

    public boolean isVisinstInstid() {
        return visinstInstid;
    }

    public void setVisinstInstid(boolean visinstInstid) {
        this.visinstInstid = visinstInstid;
    }

    public boolean isVisinstInstname() {
        return visinstInstname;
    }

    public void setVisinstInstname(boolean visinstInstname) {
        this.visinstInstname = visinstInstname;
    }

    public boolean isVisinstInstownerdept() {
        return visinstInstownerdept;
    }

    public void setVisinstInstownerdept(boolean visinstInstownerdept) {
        this.visinstInstownerdept = visinstInstownerdept;
    }

    public boolean isVisinstInstownerfirst() {
        return visinstInstownerfirst;
    }

    public void setVisinstInstownerfirst(boolean visinstInstownerfirst) {
        this.visinstInstownerfirst = visinstInstownerfirst;
    }

    public boolean isVisinstInstownerlast() {
        return visinstInstownerlast;
    }

    public void setVisinstInstownerlast(boolean visinstInstownerlast) {
        this.visinstInstownerlast = visinstInstownerlast;
    }

    public boolean isVisinstLaunchTime() {
        return visinstLaunchTime;
    }

    public void setVisinstLaunchTime(boolean visinstLaunchTime) {
        this.visinstLaunchTime = visinstLaunchTime;
    }

    public boolean isVisinstPrivateIP() {
        return visinstPrivateIP;
    }

    public void setVisinstPrivateIP(boolean visinstPrivateIP) {
        this.visinstPrivateIP = visinstPrivateIP;
    }

    public boolean isVisinstPublicIP() {
        return visinstPublicIP;
    }

    public void setVisinstPublicIP(boolean visinstPublicIP) {
        this.visinstPublicIP = visinstPublicIP;
    }

    public boolean isVisinstRunningHousrs() {
        return visinstRunningHousrs;
    }

    public void setVisinstRunningHousrs(boolean visinstRunningHousrs) {
        this.visinstRunningHousrs = visinstRunningHousrs;
    }

    public boolean isVisinstState() {
        return visinstState;
    }

    public void setVisinstState(boolean visinstState) {
        this.visinstState = visinstState;
    }

    public boolean isVisinstType() {
        return visinstType;
    }

    public void setVisinstType(boolean visinstType) {
        this.visinstType = visinstType;
    }

    public boolean isVisinstZone() {
        return visinstZone;
    }

    public void setVisinstZone(boolean visinstZone) {
        this.visinstZone = visinstZone;
    }
    //-----------------------------------------------------------------------
    // Volume table column visibility
    //-----------------------------------------------------------------------
    protected boolean visvolVolid = true;
    protected boolean visvolVolname = false;
    protected boolean visvolVolDesc = false;
    protected boolean visvolVolOwnerLast = false;
    protected boolean visvolVolOwnerFirst = false;
    protected boolean visvolVolOwnerDept = false;
    protected boolean visvolSnapid = true;
    protected boolean visvolSnapname = false;
    protected boolean visvolSize = true;
    protected boolean visvolStatus = true;
    protected boolean visvolZone = true;
    protected boolean visvolCreateTime = true;
    protected boolean visvolRunningHours = true;
    protected boolean visvolInstID = true;
    protected boolean visvolInstName = false;
    protected boolean visvolInstDevice = true;
    protected boolean visvolInstStatus = true;
    protected boolean visvolAttachedTime = true;
    protected boolean visvolAttachedHours = true;

    public boolean isVisvolAttachedHours() {
        return visvolAttachedHours;
    }

    public void setVisvolAttachedHours(boolean visvolAttachedHours) {
        this.visvolAttachedHours = visvolAttachedHours;
    }

    public boolean isVisvolAttachedTime() {
        return visvolAttachedTime;
    }

    public void setVisvolAttachedTime(boolean visvolAttachedTime) {
        this.visvolAttachedTime = visvolAttachedTime;
    }

    public boolean isVisvolCreateTime() {
        return visvolCreateTime;
    }

    public void setVisvolCreateTime(boolean visvolCreateTime) {
        this.visvolCreateTime = visvolCreateTime;
    }

    public boolean isVisvolInstDevice() {
        return visvolInstDevice;
    }

    public void setVisvolInstDevice(boolean visvolInstDevice) {
        this.visvolInstDevice = visvolInstDevice;
    }

    public boolean isVisvolInstID() {
        return visvolInstID;
    }

    public void setVisvolInstID(boolean visvolInstID) {
        this.visvolInstID = visvolInstID;
    }

    public boolean isVisvolInstName() {
        return visvolInstName;
    }

    public void setVisvolInstName(boolean visvolInstName) {
        this.visvolInstName = visvolInstName;
    }

    public boolean isVisvolInstStatus() {
        return visvolInstStatus;
    }

    public void setVisvolInstStatus(boolean visvolInstStatus) {
        this.visvolInstStatus = visvolInstStatus;
    }

    public boolean isVisvolRunningHours() {
        return visvolRunningHours;
    }

    public void setVisvolRunningHours(boolean visvolRunningHours) {
        this.visvolRunningHours = visvolRunningHours;
    }

    public boolean isVisvolSize() {
        return visvolSize;
    }

    public void setVisvolSize(boolean visvolSize) {
        this.visvolSize = visvolSize;
    }

    public boolean isVisvolSnapid() {
        return visvolSnapid;
    }

    public void setVisvolSnapid(boolean visvolSnapid) {
        this.visvolSnapid = visvolSnapid;
    }

    public boolean isVisvolSnapname() {
        return visvolSnapname;
    }

    public void setVisvolSnapname(boolean visvolSnapname) {
        this.visvolSnapname = visvolSnapname;
    }

    public boolean isVisvolStatus() {
        return visvolStatus;
    }

    public void setVisvolStatus(boolean visvolStatus) {
        this.visvolStatus = visvolStatus;
    }

    public boolean isVisvolVolDesc() {
        return visvolVolDesc;
    }

    public void setVisvolVolDesc(boolean visvolVolDesc) {
        this.visvolVolDesc = visvolVolDesc;
    }

    public boolean isVisvolVolOwnerDept() {
        return visvolVolOwnerDept;
    }

    public void setVisvolVolOwnerDept(boolean visvolVolOwnerDept) {
        this.visvolVolOwnerDept = visvolVolOwnerDept;
    }

    public boolean isVisvolVolOwnerFirst() {
        return visvolVolOwnerFirst;
    }

    public void setVisvolVolOwnerFirst(boolean visvolVolOwnerFirst) {
        this.visvolVolOwnerFirst = visvolVolOwnerFirst;
    }

    public boolean isVisvolVolOwnerLast() {
        return visvolVolOwnerLast;
    }

    public void setVisvolVolOwnerLast(boolean visvolVolOwnerLast) {
        this.visvolVolOwnerLast = visvolVolOwnerLast;
    }

    public boolean isVisvolVolid() {
        return visvolVolid;
    }

    public void setVisvolVolid(boolean visvolVolid) {
        this.visvolVolid = visvolVolid;
    }

    public boolean isVisvolVolname() {
        return visvolVolname;
    }

    public void setVisvolVolname(boolean visvolVolname) {
        this.visvolVolname = visvolVolname;
    }

    public boolean isVisvolZone() {
        return visvolZone;
    }

    public void setVisvolZone(boolean visvolZone) {
        this.visvolZone = visvolZone;
    }
    //-----------------------------------------------------------------------
    // Snapshot table column visibility
    //-----------------------------------------------------------------------
    protected boolean vissnapSnapid = true;
    protected boolean vissnapSnapname = false;
    protected boolean vissnapSnapDesc = false;
    protected boolean vissnapSnapOwnerLast = false;
    protected boolean vissnapSnapOwnerFirst = false;
    protected boolean vissnapSnapOwnerDept = false;
    protected boolean vissnapVolid = true;
    protected boolean vissnapVolname = false;
    protected boolean vissnapStatus = true;
    protected boolean vissnapCreateTime = true;
    protected boolean vissnapProgress = true;
    protected boolean vissnapRunningHours = true;
    protected boolean vissnapOwnerID = false;
    protected boolean vissnapDescription = false;
    protected boolean vissnapOwnerAlias = false;
    protected boolean vissnapVolSize = false;

    public boolean isVissnapCreateTime() {
        return vissnapCreateTime;
    }

    public void setVissnapCreateTime(boolean vissnapCreateTime) {
        this.vissnapCreateTime = vissnapCreateTime;
    }

    public boolean isVissnapProgress() {
        return vissnapProgress;
    }

    public void setVissnapProgress(boolean vissnapProgress) {
        this.vissnapProgress = vissnapProgress;
    }

    public boolean isVissnapRunningHours() {
        return vissnapRunningHours;
    }

    public void setVissnapRunningHours(boolean vissnapRunningHours) {
        this.vissnapRunningHours = vissnapRunningHours;
    }

    public boolean isVissnapSnapDesc() {
        return vissnapSnapDesc;
    }

    public void setVissnapSnapDesc(boolean vissnapSnapDesc) {
        this.vissnapSnapDesc = vissnapSnapDesc;
    }

    public boolean isVissnapSnapOwnerFirst() {
        return vissnapSnapOwnerFirst;
    }

    public void setVissnapSnapOwnerFirst(boolean vissnapSnapOwnerFirst) {
        this.vissnapSnapOwnerFirst = vissnapSnapOwnerFirst;
    }

    public boolean isVissnapSnapOwnerLast() {
        return vissnapSnapOwnerLast;
    }

    public void setVissnapSnapOwnerLast(boolean vissnapSnapOwnerLast) {
        this.vissnapSnapOwnerLast = vissnapSnapOwnerLast;
    }

    public boolean isVissnapSnapid() {
        return vissnapSnapid;
    }

    public void setVissnapSnapid(boolean vissnapSnapid) {
        this.vissnapSnapid = vissnapSnapid;
    }

    public boolean isVissnapSnapname() {
        return vissnapSnapname;
    }

    public void setVissnapSnapname(boolean vissnapSnapname) {
        this.vissnapSnapname = vissnapSnapname;
    }

    public boolean isVissnapStatus() {
        return vissnapStatus;
    }

    public void setVissnapStatus(boolean vissnapStatus) {
        this.vissnapStatus = vissnapStatus;
    }

    public boolean isVissnapVolid() {
        return vissnapVolid;
    }

    public void setVissnapVolid(boolean vissnapVolid) {
        this.vissnapVolid = vissnapVolid;
    }

    public boolean isVissnapSnapOwnerDept() {
        return vissnapSnapOwnerDept;
    }

    public void setVissnapSnapOwnerDept(boolean vissnapSnapOwnerDept) {
        this.vissnapSnapOwnerDept = vissnapSnapOwnerDept;
    }

    public boolean isVissnapVolname() {
        return vissnapVolname;
    }

    public void setVissnapVolname(boolean vissnapVolname) {
        this.vissnapVolname = vissnapVolname;
    }

    public boolean isVissnapOwnerID() {
        return vissnapOwnerID;
    }

    public void setVissnapOwnerID(boolean vissnapOwnerID) {
        this.vissnapOwnerID = vissnapOwnerID;
    }

    public boolean isVissnapDescription() {
        return vissnapDescription;
    }

    public void setVissnapDescription(boolean vissnapDescription) {
        this.vissnapDescription = vissnapDescription;
    }

    public boolean isVissnapOwnerAlias() {
        return vissnapOwnerAlias;
    }

    public void setVissnapOwnerAlias(boolean vissnapOwnerAlias) {
        this.vissnapOwnerAlias = vissnapOwnerAlias;
    }

    public boolean isVissnapVolSize() {
        return vissnapVolSize;
    }

    public void setVissnapVolSize(boolean vissnapVolSize) {
        this.vissnapVolSize = vissnapVolSize;
    }
    

    //-----------------------------------------------------------------------
    // Elastic IPs table column visibility
    //-----------------------------------------------------------------------
    protected boolean viseipName = true;
    protected boolean viseipDesc = false;
    protected boolean viseipOwnerLastName = false;
    protected boolean viseipOwnerFirstName = false;
    protected boolean viseipOwnerDept = false;
    protected boolean viseipInstID = true;
    protected boolean viseipInstName = true;

    public boolean isViseipDesc() {
        return viseipDesc;
    }

    public void setViseipDesc(boolean viseipDesc) {
        this.viseipDesc = viseipDesc;
    }

    public boolean isViseipInstID() {
        return viseipInstID;
    }

    public void setViseipInstID(boolean viseipInstID) {
        this.viseipInstID = viseipInstID;
    }

    public boolean isViseipInstName() {
        return viseipInstName;
    }

    public void setViseipInstName(boolean viseipInstName) {
        this.viseipInstName = viseipInstName;
    }

    public boolean isViseipName() {
        return viseipName;
    }

    public void setViseipName(boolean viseipName) {
        this.viseipName = viseipName;
    }

    public boolean isViseipOwnerDept() {
        return viseipOwnerDept;
    }

    public void setViseipOwnerDept(boolean viseipOwnerDept) {
        this.viseipOwnerDept = viseipOwnerDept;
    }

    public boolean isViseipOwnerFirstName() {
        return viseipOwnerFirstName;
    }

    public void setViseipOwnerFirstName(boolean viseipOwnerFirstName) {
        this.viseipOwnerFirstName = viseipOwnerFirstName;
    }

    public boolean isViseipOwnerLastName() {
        return viseipOwnerLastName;
    }

    public void setViseipOwnerLastName(boolean viseipOwnerLastName) {
        this.viseipOwnerLastName = viseipOwnerLastName;
    }
    //-----------------------------------------------------------------------
    // SDB Items table column visibility
    //-----------------------------------------------------------------------
    protected boolean vissdbitemName = true;
    protected boolean vissdbitemDesc = true;
    protected boolean vissdbitemOwnerLastName = true;
    protected boolean vissdbitemOwnerFirstName = true;
    protected boolean vissdbitemOwnerDept = true;
    protected boolean vissdbitemCreateTime = true;
    protected boolean vissdbitemState = true;

    public boolean isVissdbitemCreateTime() {
        return vissdbitemCreateTime;
    }

    public void setVissdbitemCreateTime(boolean vissdbitemCreateTime) {
        this.vissdbitemCreateTime = vissdbitemCreateTime;
    }

    public boolean isVissdbitemDesc() {
        return vissdbitemDesc;
    }

    public void setVissdbitemDesc(boolean vissdbitemDesc) {
        this.vissdbitemDesc = vissdbitemDesc;
    }

    public boolean isVissdbitemName() {
        return vissdbitemName;
    }

    public void setVissdbitemName(boolean vissdbitemName) {
        this.vissdbitemName = vissdbitemName;
    }

    public boolean isVissdbitemOwnerFirstName() {
        return vissdbitemOwnerFirstName;
    }

    public void setVissdbitemOwnerFirstName(boolean vissdbitemOwnerFirstName) {
        this.vissdbitemOwnerFirstName = vissdbitemOwnerFirstName;
    }

    public boolean isVissdbitemOwnerLastName() {
        return vissdbitemOwnerLastName;
    }

    public void setVissdbitemOwnerLastName(boolean vissdbitemOwnerLastName) {
        this.vissdbitemOwnerLastName = vissdbitemOwnerLastName;
    }

    public boolean isVissdbitemState() {
        return vissdbitemState;
    }

    public void setVissdbitemState(boolean vissdbitemState) {
        this.vissdbitemState = vissdbitemState;
    }

    public boolean isVissdbitemOwnerDept() {
        return vissdbitemOwnerDept;
    }

    public void setVissdbitemOwnerDept(boolean vissdbitemOwnerDept) {
        this.vissdbitemOwnerDept = vissdbitemOwnerDept;
    }
    //-----------------------------------------------------------------------
    protected boolean initAMILaunchPermission = true;

    /**
     * Get the value of initAMILaunchPermission
     *
     * @return the value of initAMILaunchPermission
     */
    public boolean isInitAMILaunchPermission() {
        return initAMILaunchPermission;
    }

    /**
     * Set the value of initAMILaunchPermission
     *
     * @param initAMILaunchPermission new value of initAMILaunchPermission
     */
    public void setInitAMILaunchPermission(boolean initAMILaunchPermission) {
        this.initAMILaunchPermission = initAMILaunchPermission;
    }
    //-----------------------------------------------------------------------
    protected Map cloneMetaData = new HashMap();

    public Map getCloneMetaData() {
        return cloneMetaData;
    }

    public void setCloneMetaData(Map cloneMetaData) {
        this.cloneMetaData = cloneMetaData;
    }
    //-----------------------------------------------------------------------
    protected Map tableFiltersFields = new HashMap();

    /**
     * Get the value of tableFiltersFields
     *
     * @return the value of tableFiltersFields
     */
    public Map getTableFiltersFields() {
        return tableFiltersFields;
    }

    /**
     * Set the value of tableFiltersFields
     *
     * @param tableFiltersFields new value of tableFiltersFields
     */
    public void setTableFiltersFields(Map tableFiltersFields) {
        this.tableFiltersFields = tableFiltersFields;
    }
}
